experiments/task_dispatch_service/{{destination_path}}/{{component_name}}/skaffold.yaml (106 lines of code) (raw):
apiVersion: skaffold/v4beta1
kind: Config
metadata:
name: {{component_name}}
{% if depend_on_common == true -%}
# Requires the common image for shared data models or utils.
requires:
- configs:
- common
path: ../common
{%- endif %}
build:
artifacts:
- image: {{resource_name}}
sync:
infer:
- '**/*.py'
- '**/*.json'
docker:
cacheFrom:
- {{resource_name}}
- {{resource_name}}:latest
{% if depend_on_common == true -%}
requires:
- image: common
alias: COMMON_IMAGE
{%- endif %}
googleCloudBuild: {}
# Portforwarding when running `skaffold dev` locally.
portForward:
- resourceType: service
resourceName: {{resource_name}}
port: 80
localPort: 9001 # Change this when adding other microservice.
profiles:
# Profile for building images locally.
- name: local_build
build:
artifacts:
- image: {{resource_name}}
{% if depend_on_common == true -%}
requires:
- image: common
alias: COMMON_IMAGE
{%- endif %}
sync:
infer:
- '**/*.py'
- '**/*.json'
tagPolicy:
gitCommit: {}
local:
concurrency: 0
{% if default_deploy == "gke" -%}
# Profile for GKE deployment, building images via CloudBuild
- &gke-profile # YAML anchor used by "default" profile.
name: gke
manifests:
# Loading kustomize base file for deployment.
kustomize:
paths:
- ./kustomize/base
# Substitute system's environment vars to properties.rendered.env
hooks:
before:
- host:
dir: ./kustomize/base
command: ["sh", "-c",
"envsubst < properties.env > properties.rendered.env"]
after:
- host:
dir: ./kustomize/base
command: ["sh", "-c", "rm *.rendered.env"]
# Simple deployment using kubectl.
deploy:
kubectl:
hooks:
before:
- host:
dir: .
command: ["sh", "-c", "gcloud container clusters get-credentials 'main-cluster' --region '{{region}}' --project '{{project_id}}'"]
# Profile for GKE Horizontal Pod Autoscaler.
# This profile only works with `gke` profile together.
# E.g. skaffold run -p gke,hpa
- name: gke-hpa
manifests:
kustomize:
paths:
- ./kustomize/hpa
# Simple deployment using kubectl.
deploy:
kubectl: {}
{%- endif %}
{% if default_deploy == "cloudrun" -%}
# Profile for Cloud Run deployment, building images via CloudBuild
- &cloudrun-profile # YAML anchor used by "default" profile.
name: cloudrun
manifests:
rawYaml:
- manifests/cloudrun-service.yaml
deploy:
cloudrun:
projectid: {{project_id}}
region: {{region}}
portForward:
- resourceType: service
resourceName: {{resource_name}}
port: 80
localPort: 9001 # Change this when adding other microservice.
{%- endif %}
{% if default_deploy == "cloudrun" -%}
# The default-deploy profile refer to cloudrun profile above.
- <<: *cloudrun-profile
name: default-deploy
{%- endif %}
{% if default_deploy == "gke" -%}
# The default-deploy profile refer to gke profile above.
- <<: *gke-profile
name: default-deploy
{%- endif %}